package com.lfy.service;


import com.lfy.domain.vo.BackGroundVO;
import com.lfy.modules.blog.domain.SocialEntity;
import com.lfy.modules.blog.domain.dto.article.CommentDTO;
import com.lfy.domain.dto.FeedBackDTO;
import com.lfy.modules.blog.domain.vo.web.*;
import com.lfy.modules.common.domain.PageResultVO;
import com.lfy.modules.common.domain.R;

import java.util.List;

/**
 *
 * @author lfy
 */
public interface WebService {
    /**
     * 主页信息
     * @param url uri
     * @return R
     */
    R<HomeVO> home(String url);

    /**
     * 文章列表分页
     * @param pageNum 页码
     * @param pageSize 页大小
     * @param userId 用户
     * @param url uri
     * @return R
     */
    R<PageResultVO<ArticleShowVO>> getArticleList(int pageNum, int pageSize,Long userId,String url);

    /**
     * 反馈
     * @param dto 反馈信息
     * @return R
     */
    R<Void> feedback(FeedBackDTO dto);

    /**
     * 获取反馈列表
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param url url
     * @return R
     */
    R<PageResultVO<FeedbackWebVO>> getFeedbackList(Integer pageNum, Integer pageSize, String url);

    /**
     * 文章详情
     * @param id 文章id
     * @return R
     */
    R<ArticleTextVO> getArticleDetail(Long id,String url);

    /**
     * 评论
     * @param dto 评论信息
     * @return R
     */
    R<Void> comment(CommentDTO dto);

    /**
     * 获取评论列表
     * @param id 文章id
     * @return R
     */
    R<List<ArticleCommentVO>> getComment(Long id);

    /**
     * 获取说说列表
     * @param length 数量
     * @param url
     * @return
     */
    R<?> getSayList(Integer length, String url);

    R<SocialEntity> getSocial(String url);

    R<BackGroundVO> getBackGround(String url);

    /**
     * 点赞
     * @param id
     * @return
     */
    R<Void> goodsArticle(Long id);
}
